package API.ExerciseDome;

import java.util.Scanner;

/**
 * ClassName:ExerciseText004
 * Package:API.ExerciseDome
 * Description:
 *
 * @Author:ZhangXin
 * @Create2023/2/3-11:43
 * @Version:v1.0
 */
public class ExerciseText004 {
    /*
    * 定义一方法只实现toBinaryString方法效果,将一个十进制整数转化成字符串表示的二进制
    *
    * 除基取余
    * */
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入一个数字：");
        int number = sc.nextInt();
        System.out.println("该数的二进制为:"+toBinaryString(number));

        System.out.println(Integer.toBinaryString(123));
    }

    public static String toBinaryString(int number){
        //核心逻辑：不断除以2,得到余数,一直到商为0
        //还需要把余数倒着拼接起来

        //定义一个StringBuilder用来拼接余数
        StringBuilder sb = new StringBuilder();
        //利用循环不断的除以2获取余数
        while (true){
            if (number == 0){
                break;
            }else {
                //获取余数
                int remaindar = number%2;
                //倒着拼接
                //011-->110
                sb.insert(0,remaindar);//插入    一直往0索引插入
                System.out.println(remaindar);
                //除以2
                number = number/2;
            }

        }
        return sb.toString();
    }
}
